home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / interfaces3_5.lha / Interfaces / Parallel.mod < prev    next >
Text File  |  1994-03-05  |  3KB  |  91 lines

  1. (*
  2. (*
  3. **  Amiga Oberon Interface Module:
  4. **  $VER: Parallel.mod 40.15 (28.12.93) Oberon 3.0
  5. **
  6. **   © 1993 by Fridtjof Siebert
  7. *)
  8. *)
  9.  
  10. MODULE Parallel;   (* $Implementation- *)
  11.  
  12. IMPORT e * := Exec;
  13.  
  14. TYPE
  15.  
  16.   IOPArrayPtr * = UNTRACED POINTER TO IOPArray;
  17.   IOPArray * = ARRAY 8 OF CHAR;
  18.  
  19. (******************************************************************)
  20. (* CAUTION !!  IF YOU ACCESS the parallel.device, you MUST (!!!!) use
  21.    an IOExtPar-sized structure or you may overlay innocent memory !! *)
  22. (******************************************************************)
  23.  
  24.   IOExtParPtr * = UNTRACED POINTER TO IOExtPar;
  25.   IOExtPar * = STRUCT (ioPar * : e.IOStdReq)
  26.  
  27. (*     STRUCT   MsgNode
  28. *   0   APTR     Succ
  29. *   4   APTR     Pred
  30. *   8   UBYTE    Type
  31. *   9   UBYTE    Pri
  32. *   A   APTR     Name
  33. *   E   APTR     ReplyPort
  34. *  12   UWORD    MNLength
  35. *     STRUCT   IOExt
  36. *  14   APTR     io_Device
  37. *  18   APTR     io_Unit
  38. *  1C   UWORD    io_Command
  39. *  1E   UBYTE    io_Flags
  40. *  1F   UBYTE    io_Error
  41. *     STRUCT   IOStdExt
  42. *  20   ULONG    io_Actual
  43. *  24   ULONG    io_Length
  44. *  28   APTR     io_Data
  45. *  2C   ULONG    io_Offset
  46. *  30 *)
  47.  
  48.     pExtFlags * : LONGSET;     (* (not used) flag extension area *)
  49.     status * : SHORTSET;       (* status of parallel port and registers *)
  50.     parFlags * : SHORTSET;     (* see PARFLAGS bit definitions below *)
  51.     pTermArray * : IOPArray;   (* termination character array *)
  52.   END;
  53.  
  54. CONST
  55.  
  56.   shared     * = 5;          (* parFlags non-exclusive access bit *)
  57.   slowMode   * = 4;          (*    "     slow printer bit *)
  58.   fastMode   * = 3;          (*    "     fast I/O mode selected bit *)
  59.   radBoogie  * = 3;          (*    "     for backward compatibility *)
  60.  
  61.   ackMode    * = 2;          (*    "     ACK interrupt handshake bit *)
  62.  
  63.   eofMode    * = 1;          (*    "     EOF mode enabled bit *)
  64.  
  65.   queued     * = 6;          (* flags rqst-queued bit *)
  66.   abort      * = 5;          (*   "   rqst-aborted bit *)
  67.   active     * = 4;          (*   "   rqst-qued-or-current bit *)
  68.  
  69.   rwDir      * = 3;          (* status read=0,write=1 bit *)
  70.   parSel     * = 2;          (*   "    printer selected on the A1000 *)
  71.   paperOut   * = 1;          (*   "    paper out bit *)
  72.   parBusy    * = 0;          (*   "    printer in busy toggle bit *)
  73. (* Note: previous versions of this include files had bits 0 and 2 swapped *)
  74.  
  75.   parallelName * = "parallel.device";
  76.  
  77.   query         * = e.nonstd;
  78.   setparams     * = e.nonstd + 1;
  79.  
  80. (* ParErrs: *)
  81.   devBusy      * = 1;
  82.   bufTooBig    * = 2;
  83.   invParam     * = 3;
  84.   lineErr      * = 4;
  85.   notOpen      * = 5;
  86.   portReset    * = 6;
  87.   initErr      * = 7;
  88.  
  89. END Parallel.
  90.  
  91.